Automated dynamic differential data processing

ABSTRACT

A request for differential data relative to a first data element within a group of data elements is received via a user input device. A first differential data value for each of the group of data elements relative to the first data element is calculated. The first differential data value for each of the group of data elements relative to the first data element are displayed on a display in response to the received request. This abstract is not to be considered limiting, since other embodiments may deviate from the features described in this abstract.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to systems and methods for determining andpresenting differential data for elements of a data set. Moreparticularly, the present invention relates to automated dynamicdifferential data processing.

2. Related Art

Graphical user interfaces (GUIs) provide users with an ability to openand view data sets, such as columnar data within a spreadsheet, and viewdata values for elements of the data set. A user may be able to usepre-defined formulas for execution on elements of data within thecolumns. For example, a spreadsheet program may provide a user with anability to use a pre-defined sum formula on specified data elementswithin columns of data, a pre-defined subtraction formula on dataelements within columns of data, and other pre-defined operations. Thepre-defined formulas may be combined to form more complex formulas.Entry of these combined formulas requires knowledge of formula entryrequirements for the program. A user may be required to enter granulardetails, such as cell addresses for data elements, to allow formulas tofunction properly. Accordingly, program-specific knowledge is requiredto enter formulas to operate upon data.

BRIEF SUMMARY OF THE INVENTION

The subject matter described herein provides automated dynamicdifferential data processing. A request for differential (e.g.,distance) data relative to a first data element within a set of dataelements is received from a user via a user input device, such as amouse. The set of data elements may be a column, row, or other groupingof data. In response, a differential data value is calculated for eachof the set of data elements relative to the first data element anddisplayed on a display. A second data element may be focused and thedifferential calculation performed against the second data element and asecond set of differential data displayed. The original data values arestored and re-displayed upon loss of focus of a data element ortermination of the request for differential data. As such, automateddynamic differential data processing is provided to allow fluidcomparison of data elements within a data set. The user may define thedistance formula via the input device to be used for the automateddynamic differential data processing based upon a data type associationwith elements within the set of data elements.

A method includes receiving, via a user input device, a request fordifferential data relative to a first data element within a plurality ofdata elements; calculating a first differential data value for each ofthe plurality of data elements relative to the first data element; anddisplaying the first differential data value for each of the pluralityof data elements relative to the first data element on a display inresponse to the received request.

A system includes a display; a user input device; and a processorprogrammed to: receive, via the user input device, a request fordifferential data relative to a first data element within a plurality ofdata elements; calculate a first differential data value for each of theplurality of data elements relative to the first data element; anddisplay the first differential data value for each of the plurality ofdata elements relative to the first data element on the display inresponse to the received request.

An alternative system includes a display; a user input device; a memory;and a processor programmed to: detect a differential data selectionassociated with a received request for differential data via a graphicaluser interface (GUI) displayed on the display and a first focus eventassociated with a first data element via the GUI in response to usermanipulation of the user input device; highlight the first data elementon the display; determine a data type associated with the first dataelement; apply a distance formula associated with the determined datatype to the first data element paired with each of a plurality of dataelements to calculate a first differential data value for each of theplurality of data elements relative to the first data element; store anoriginal data value associated with each of the plurality of dataelements in the memory; display the first differential data value foreach of the plurality of data elements relative to the first dataelement on the display in response to the received request; detect asecond focus event associated with a second data element of theplurality of data elements via the GUI; calculate a second differentialdata value for each of the plurality of data elements relative to thesecond data element; display the second differential data value for eachof the plurality of data elements relative to the second data element onthe display in response to the detected second focus event; retrieve theoriginal data value associated with each of the plurality of dataelements from the memory in response to at least one of a differentialdisplay timeout and an unfocus event associated with the first dataelement; and display the original data value associated with each of theplurality of data elements on the display.

A computer program product includes a computer useable medium includinga computer readable program. The computer readable program when executedon a computer causes the computer to receive, via a user input device, arequest for differential data relative to a first data element within aplurality of data elements; calculate a first differential data valuefor each of the plurality of data elements relative to the first dataelement; and display the first differential data value for each of theplurality of data elements relative to the first data element on adisplay in response to the received request.

Those skilled in the art will appreciate the scope of the presentinvention and realize additional aspects thereof after reading thefollowing detailed description of the preferred embodiments inassociation with the accompanying drawing figures.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The accompanying drawing figures incorporated in and forming a part ofthis specification illustrate several aspects of the invention, andtogether with the description, serve to explain the principles of theinvention.

Figure (FIG.) 1 is a block diagram of an example of an implementation ofa system for automated dynamic differential data processing according toan embodiment of the present subject matter;

Figure (FIG.) 2 is a block diagram of an example of an implementation ofa consumer electronics device that is capable of performing automateddynamic differential data processing according to an embodiment of thepresent subject matter;

Figure (FIG.) 3 is an example of an implementation of a graphical userinterface (GUI) of a consumer electronics device in an initial statethat may be used for performing automated dynamic differential dataprocessing according to an embodiment of the present subject matter;

Figure (FIG.) 4 is an example of an implementation of the GUI of FIG. 3after a user has defined a formula via a consumer electronics device fordetermining a distance between relative salary numbers for each of theemployees and associated that formula with a set of data according to anembodiment of the present subject matter;

Figure (FIG.) 5 is an example of an implementation of the GUI of FIG. 4after a user, such as the manager, has moved a cursor via an inputdevice to a new data cell within the GUI according to an embodiment ofthe present subject matter;

Figure (FIG.) 6 is a flow chart of an example of an implementation of aprocess for providing automated dynamic differential data processing forusers of a consumer electronics device according to an embodiment of thepresent subject matter;

Figure (FIG.) 7 is a flow chart of an example of an implementation of aprocess for providing automated dynamic differential data processing inresponse to focus events and select events associated with an inputdevice and a graphical user interface (GUI) of FIG. 3 through FIG. 5according to an embodiment of the present subject matter; and

Figure (FIG.) 8 is a flow chart of an example of an implementation of aprocess that may be used to allow a user to define a distance formulaand associate that distance formula with a data type according to anembodiment of the present subject matter.

DETAILED DESCRIPTION OF THE INVENTION

The examples set forth below represent the necessary information toenable those skilled in the art to practice the invention and illustratethe best mode of practicing the invention. Upon reading the followingdescription in light of the accompanying drawing figures, those skilledin the art will understand the concepts of the invention and willrecognize applications of these concepts not particularly addressedherein. It should be understood that these concepts and applicationsfall within the scope of the disclosure and the accompanying claims.

The subject matter described herein provides automated dynamicdifferential data processing. A request for differential (e.g.,distance) data relative to a first data element within a set of dataelements is received from a user via a user input device, such as amouse. The set of data elements may be a column, row, or other groupingof data. In response, a differential data value is calculated for eachof the set of data elements relative to the first data element anddisplayed on a display. A second data element may be focused and thedifferential calculation performed against the second data element and asecond set of differential data displayed. The original data values arestored and re-displayed upon loss of focus of a data element ortermination of the request for differential data. As such, automateddynamic differential data processing is provided to allow fluidcomparison of data elements within a data set. The user may define thedistance formula via the input device to be used for the automateddynamic differential data processing based upon a data type associationwith elements within the set of data elements.

The automated dynamic differential data processing described herein maybe performed in real time to allow prompt differentiation of elementswithin sets of data. For purposes of the present description, real timeshall include any time frame of sufficiently short duration as toprovide reasonable response time for information processing acceptableto a user of the subject matter described. Additionally, the term “realtime” shall include what is commonly termed “near real time”—generallymeaning any time frame of sufficiently short duration as to providereasonable response time for on-demand information processing acceptableto a user of the subject matter described (e.g., within a portion of asecond or within a few seconds). These terms, while difficult toprecisely define are well understood by those skilled in the art.

FIG. 1 is a block diagram of an example of an implementation of a system100 for automated dynamic differential data processing. Within thesystem 100, a consumer electronics device 102 is shown connected via anetwork 104 to a server 106. As will be described in more detail belowin association with FIG. 2 through FIG. 8, the consumer electronicsdevice 102 provides automated dynamic differential data processing basedupon user interactions with a graphical user interface (not shown) ofthe consumer electronics device 102.

It should be noted that the consumer electronics device 102 may be anycomputing device capable of processing information as described aboveand in more detail below. For example, the consumer electronics device102 may include devices such as a personal computer (e.g., desktop,laptop, palm, etc.) or a handheld device (e.g., cellular telephone,personal digital assistant (PDA), email device, music recording orplayback device, etc.), or any other device capable of processinginformation as described in more detail below.

The server 106 may provide content for processing by the consumerelectronics device 102. As such, the server 106 may include a web serveror other content server for purposes of the present description. Thenetwork 104 may include any form of interconnection suitable for theintended purpose, including a private or public network such as anintranet or the Internet, respectively, direct inter-moduleinterconnection, dial-up, wireless, or any other interconnectionmechanism capable of interconnecting the consumer electronics device 102to the server 106.

The consumer electronics device 102 is shown interconnected with adatabase 108. The database 108 provides storage capabilities forinformation associated with the automated dynamic differential dataprocessing performed by the consumer electronics device 102. Thedatabase 108 includes a differential formula storage area 110 and a datastorage area 112 that may be stored in the form of tables or otherarrangements accessible by the consumer electronics device 102.

The differential formula storage area 110 includes storage fordifferential formula information associated with automated dynamicdifferential data processing, such as pre-defined and user-defineddistance formulas for processing data to determine a distance betweenrelative elements of a data set. For purposes of the presentdescription, the term “distance” shall be defined to generally refer toany pre-defined or user-defined differential relationship betweenelements of a given data type. The user may define a distance (e.g.,differential data) formula to be used for a data type based upon theuser's perspective of distance that may be measured between elements ofa given data type.

For example, a text data type may have phonetic distance, alphabeticdistance, word/character frequency distance, or other distancerelationships between characters or words associated with the text datatype and corresponding distance formulas may be defined to measure thesedistances. A numeric data type may have algebraic or other distancerelationships between numeric values associated with the numeric datatype and corresponding distance formulas may be defined to measure thesedistances. A location data type may have travel distance, flightdistance, or other distance relationships between location valuesassociated with the location data type and corresponding distanceformulas may be defined to measure these distances. An image data typemay have red/green/blue (RGB) distances, hue distances for differencesbetween corresponding pixel values, content distances for use in findingobjects in different images, and other distance relationships betweenimage elements or portions of image elements associated with the imagedata type and corresponding distance formulas may be defined to measurethese distances. Accordingly, the automated dynamic differential dataprocessing is configurable by a user of a device, such as the consumerelectronics device 120, and may be based upon a data type for a set ofdata elements. Many other examples of data types for automated dynamicdifferential data processing are possible and all are considered withinthe scope of the present subject matter.

The data storage area 112 includes additional information associatedwith automated dynamic differential data processing, such as informationregarding associations between data types and defined distance formulasthat may be used to process the respective data types to determinedifferential data relationships between elements of the respective datatypes. It should be noted that a user may define data types for use bythe consumer electronics device 102 for differential data processing,associations between data types, and distance formulas based upon thesubject matter described herein. These data types, associations betweenthe data types, and the distance formulas are examples of informationthat may be stored within the data storage area 112.

FIG. 2 is a block diagram of an example of an implementation of theconsumer electronics device 102 that is capable of performing automateddynamic differential data processing. A central processing unit (CPU)200 provides computer instruction execution, computation, and othercapabilities within the consumer electronics device 102. A display 202provides visual information to a user of the consumer electronics device102 and an input device 204 provides input capabilities for the user.

The display 202 may include any display device, such as a cathode raytube (CRT), liquid crystal display (LCD), light emitting diode (LED),projection, touchscreen, or other display element or panel. The inputdevice 204 may include a computer keyboard, a keypad, a mouse, a pen, ajoystick, or any other type of input device by which the user mayinteract with and respond to information on the display 202.

A communication module 206 provides interconnection capabilities thatallow the consumer electronics device 102 to communicate with othermodules within the system 100, such as the server 106 to retrievecontent for processing. The communication module 206 may include anyelectrical, protocol, and protocol conversion capabilities useable toprovide the interconnection capabilities. Though the communicationmodule 206 is illustrated as a component-level module for ease ofillustration and description purposes, it should be noted that thecommunication module 206 includes any hardware, programmed processor(s),and memory used to carry out the functions of the communication module206 as described above and in more detail below. For example, thecommunication module 206 may include additional controller circuitry inthe form of application specific integrated circuits (ASICs),processors, antennas, and/or discrete integrated circuits and componentsfor performing communication and electrical control activitiesassociated with the communication module 206. Additionally, thecommunication module 206 also includes interrupt-level, stack-level, andapplication-level modules as appropriate. Furthermore, the communicationmodule 206 includes any memory components used for storage, execution,and data processing for performing processing activities associated withthe communication module 206. The communication module 206 may also forma portion of other circuitry described without departure from the scopeof the present subject matter.

A memory 208 provides storage capabilities for the consumer electronicsdevice 102. It is understood that the memory 208 may include anycombination of volatile and non-volatile memory suitable for theintended purpose, distributed or localized as appropriate, and mayinclude other memory segments not illustrated within the present examplefor ease of illustration purposes. For example, the memory 208 mayinclude a code storage area, a code execution area, and a data areawithout departure from the scope of the present subject matter.

A differential data module 210 provides processing capabilities for theautomated dynamic differential data processing within the consumerelectronics device 102. As will be described in more detail below, thedifferential data module 210 may read formulas and associated data fromthe differential formula storage area 110 and the data storage area 112stored within the database 108. Though the differential data module 210is illustrated as a component-level module for ease of illustration anddescription purposes, it should be noted that the differential datamodule 210 includes any hardware, programmed processor(s), and memoryused to carry out the functions of the differential data module 210 asdescribed above and in more detail below. For example, the differentialdata module 210 may include additional controller circuitry in the formof application specific integrated circuits (ASICs), processors, and/ordiscrete integrated circuits and components for performing communicationand electrical control activities associated with the differential datamodule 210. Additionally, the differential data module 210 also includesinterrupt-level, stack-level, and application-level modules asappropriate. Furthermore, the differential data module 210 includes anymemory components used for storage, execution, and data processing forperforming processing activities associated with the differential datamodule 210. The differential data module 210 may also form a portion ofother circuitry described without departure from the scope of thepresent subject matter.

The CPU 200, the display 202, the input device 204, the communicationmodule 206, the memory 208, the differential data module 210, and thedatabase 108 are interconnected via an interconnection 212. Theinterconnection 212 may include a system bus, a network, or any otherinterconnection capable of providing the respective components withsuitable interconnection for the respective purpose.

While the consumer electronics device 102 is illustrated with and hascertain components described, other modules and components may beassociated with the consumer electronics device 102 without departurefrom the scope of the present subject matter. Additionally, it should benoted that, while the consumer electronics device 102 is described as asingle device for ease of illustration purposes, the components withinthe consumer electronics device 102 may be co-located or distributed andinterconnected via a network without departure from the scope of thepresent subject matter. For a distributed arrangement, the display 202and the input device 204 may be located at a point of sale device,kiosk, or other location, while the CPU 200 and memory 208 may belocated at a local or remote server. Many other possible arrangementsfor components of the consumer electronics device 102 are possible andall are considered within the scope of the present subject matter. Itshould also be understood that, though the differential formula storagearea 110 and the data storage area 112 are shown within the database108, they may also be stored within the memory 208 without departurefrom the scope of the present subject matter. Accordingly, the consumerelectronics device 102 may take many forms and may be associated withmany platforms.

FIG. 3 through FIG. 5 described below illustrate an example of theautomated dynamic differential data processing capabilities of theconsumer electronics device 102 in the form of a sequence of graphicaluser interface (GUI) representations. The GUI representations within theexample of FIG. 3 through FIG. 5 are in the form of a spreadsheet userinterface for ease of illustration purposes. However, it is understoodthat many other variations on the example GUI representations arepossible, including applications other than spreadsheet applications,and all are considered within the scope of the present subject matter.The example GUI representations may be displayed by devices, such as thedisplay device 202, associated with computing devices. Input associatedwith processing illustrated within the example GUI representations maybe generated by a user via input devices, such as the input device 204.For ease of illustration purposes, the display device 202 and the inputdevice 204 are not represented within FIG. 3 through FIG. 5.

FIG. 3 is an example of an implementation of a graphical user interface(GUI) 300 of a consumer electronics device, such as the consumerelectronics device 102, in an initial state that may be used forperforming automated dynamic differential data processing. For ease ofillustration purposes, the GUI 300 includes only two columns of data.However, it is understood that the present subject matter may be appliedto a variety of different types and sets of data. A column_A 302includes a list of names and a column_B 304 includes a list of numbers.As can be seen from FIG. 3, each line in the column_A 302 is paired witha numeric value in the column_B 304. For purposes of the presentexample, it is assumed that the numeric values within the column_B 304represent an annual salary for a given employee associated with eachname within a column_A 302. Accordingly, within the present example, anemployee Aaron in row_1 306 earns $30,000.00 per year. Similarly, anemployee Alice in row_2 308 earns $70,000.00 per year, an employee Bettyin row_3 310 earns $80,000.00 per year, an employee Chara in row_4 312earns $100,000.00 per year, an employee Denise in row_5 314 earns$110,000.00 per year, and an employee Eva in row_6 316 earns $120,000.00per year.

Based upon this example set of data, the automated dynamic differentialdata processing capabilities associated with the present subject matterimplemented by a device, such as the consumer electronics device 102,will now be described in more detail. Additionally, for purposes of thepresent example, it will be assumed that a user viewing this data is amanager of each of the employees in the column_A 302. If the manager isinterested, for example, in determining a deviation or distance betweeneach employee's respective salary and the salary of each other employee,the automated dynamic differential data processing capabilities of thepresent subject matter implemented by the consumer electronics device102 provide a way for the manager to determine this information withoutentering a formula associated with each cell or cell pair. The managermay define a formula one time via the consumer electronics device 102and have it dynamically applied to elements of the set of data, asdescribed in more detail below.

FIG. 4 is an example of an implementation of the GUI 300 of FIG. 3 afterthe user, such as the manager, has defined a formula via a consumerelectronics device, such as the consumer electronics device 102, fordetermining a distance between the relative salary numbers for each ofthe employees in the column_A 302 and associated that formula with theset of data represented within column_B 304. For purposes of the presentexample, it assumed that the distance formula defined for the column_B304 is subtraction of neighboring cells from a highlighted cell. Howeverit is understood that any distance formula suitable for the representeddata may be used without departure from the scope of the present subjectmatter.

As can be seen from FIG. 4, an icon 400 is represented in a header area402 of the column_B 304. For ease of illustration purposes, the icon 400is represented as a square within FIG. 4. However it is understood thatan icon, such as the icon 400, may be represented in any form, includingvariations in color, size, or shape, to indicate to the manager that theformula associated with the column_B 304 has been successfully definedand associated with a given portion of the set of data. It is alsoassumed for purposes of the present example, that the manager hasselected the icon 400 with a cursor 404 and has moved the cursor 404 viaan input device, such as the input device 204, into a data area of thecolumn_B 304 represented by the row_1 306 through the row_6 316. Forpurposes of the present example, it is assumed that the manager hasselected the icon 400 with a selection associated with the input device204, such as a left mouse button, and holds that selection throughoutthe example until indicated below.

As the manager moves the cursor 404 within the column_B 304, theconsumer electronics device 102 automatically applies the defineddistance formula associated with the column_B 304 to elements within theset of data. Accordingly, as can be seen from FIG. 4, the cursor 404 hasbeen moved by the consumer electronics device 102 in response to inputactions by the manager to a cell that represents an intersection of therow_3 310 and the column_B 304. To provide feedback to the manager thatthe automated dynamic differential data processing is presently active,the row_3 310 is highlighted by a dashed line 406 within the presentexample. However, it should be noted that while the present exampleutilizes the dashed line 406 to highlight the row_3 310, this should notbe considered limiting, as any form of highlighting a data cell or rowassociated with application of a distance formula may be utilizedwithout departure from the scope of the present subject matter.

As additional feedback to the manager, the data value of $80,000.00 thatwas previously in the column_B 304 at the row_3 310 has been changed bythe consumer electronics device 102 to $0.00 (zero). This value of $0.00associated with the highlighted cell within the column_B 304 representsan application of the defined distance formula for the column_B 304applied to the original data of $80,000.00 with $80,000.00 as thedifferential input data, yielding in a distance of $0.00. Similarly,each cell within the column_B 304 that previously included datarepresenting a salary number has also been modified based upon theautomated dynamic differential data processing through application ofthe defined distance formula for each salary value relative to thehighlighted salary value within the column_B 304 at the row_3 310.Accordingly, based upon the present example, the manager may readilydetermine that Aaron makes $50,000.00 less than Betty. By comparison,the manager may also determine that Eva makes $40,000.00 more thanBetty. In both example situations, the automated dynamic differentialdata processing of the consumer electronics device 102 allowed themanger to determine a distance between the respective data elementswithout defining a formula at each respective data cell.

FIG. 5 is an example of an implementation of the GUI 300 of FIG. 4 aftera user, such as the manager, has moved the cursor 404 via an inputdevice, such as the input device 204, to a new data cell within the GUI300. As can be seen from FIG. 5, the manager has moved the cursor 404via the input device 204 within the column_B 304 to a data cell thatrepresents an intersection between the column_B 304 and the row_4 312.Accordingly, as described above in association with FIG. 4 for the row_3310, the row_4 312 has been highlighted with a dashed line 500 and thedefined distance formula associated with the column_B 304 has beenapplied against the data within the intersected cell and this value hasbeen changed to represent a distance of $0.00 (zero). Accordingly, asdescribed above in association with FIG. 4, based upon this movement ofthe cursor 404, the manager may readily determine that the employeeAaron makes $70,000.00 less than the employee Chara and that theemployee Eva, by comparison, makes $20,000.00 more. By continuing tomove the cursor 404, the manager may utilize the automated dynamicdifferential data processing of the consumer electronics device 102 toreadily compare employee salaries. The consumer electronics device 102continues automated dynamic differential data processing within thepresent example, until the manager releases an element associated withthe input device 204, such as a left mouse button.

It should also be noted that the differential data displayed uponapplication of the defined distance formula does not destroy the initialdata associated with the cells. Accordingly, upon release of a selectionelement associated with the cursor 404, such as a left mouse buttonassociated with the input device 204, the original data is re-populatedby the consumer electronics device 102 within the cells of the column_B304 and the data returns to the representation illustrated in FIG. 3described above.

Based upon the example of FIG. 3 through FIG. 5, it can be seen that adistance formula may be defined for and applied to a set of data at theconsumer electronics device 102. It can further be seen that each dataelement within the set may be operated upon dynamically and the distanceformula applied relative to each data element to determine a distanceassociated with each data element relative to each other data elementwithin the set. Additionally, application of the defined distanceformula on the data is non-destructive. Accordingly, data within thedata set does not need to be reconstructed upon completion of theautomated dynamic differential data processing associated with thepresent subject matter.

FIG. 6 through FIG. 8 below describe example processes that may beexecuted by computing devices, such as the consumer electronics device102, to perform the automated dynamic differential data processingassociated with the present subject matter. Many other variations on theexample processes are possible and all are considered within the scopeof the present subject matter. The example processes may be performed bymodules, such as the differential data module 210 and/or executed by theCPU 200, associated with computing devices. It should be noted thattime-out procedures and other error control procedures are notillustrated within the example processes described below for ease ofillustration purposes. However, it is understood that all suchprocedures are considered to be within the scope of the present subjectmatter.

FIG. 6 is a flow chart of an example of an implementation of a process600 for providing automated dynamic differential data processing forusers of a consumer electronics device, such as the consumer electronicsdevice 102. At block 602, the process 600 receives, via a user inputdevice, a request for differential data relative to a first data elementwithin a plurality of data elements. At block 604, the process 600calculates a first differential data value of each of the plurality ofdata elements relative to the first data element. At block 606, theprocess 600 displays the first differential data value for each of theplurality of data elements relative to the first data element on adisplay in response to the received request.

FIG. 7 is a flow chart of an example of an implementation of a process700 for providing automated dynamic differential data processing inresponse to focus events and select events associated with an inputdevice, such as the input device 204, and a graphical user interface(GUI), such as the GUI 300 of FIG. 3 through FIG. 5. The process 700waits at decision point 702 until a request for differential data isreceived. The request may also include detecting a differential dataselection associated with the received request for differential data viaa graphical user interface (GUI), such as the GUI 300, displayed on adisplay, such as the display device 202. As such, the request, forexample, may be a mouse click by the user selecting a left mouse buttonover an icon, such as the icon 400 described above in association withthe GUI 300, and this mouse click may be detected by the CPU 200. It isadditionally noted that, for purposes of the present example, it isassumed that the user holds the left mouse button in the selected stateuntil released as described below. Accordingly, as a user moves acursor, such as the cursor 404 associated with the mouse, data elementsmay be focused when the cursor 404 is moved over the respective dataelements within the GUI 300.

Upon receipt of a request for differential data at decision point 702,the process 700 waits at decision point 704 for a focus event associatedwith the GUI 300. When a determination is made that a focus event hasbeen detected, the process 700 makes a determination as to a data typeassociated with the focused data element at block 706. At block 708, theprocess 700 retrieves a defined distance formula associated with thedata type of the data element that is the subject of the focus event.The distance formula may be retrieved, for example, from thedifferential formula storage area 110 within the database 108 or fromthe memory 208, as described above. At block 710, the process 700 storesoriginal data values for all data elements associated with the focuseddata element, including the data value of the focused data element.These data values may be stored within the data storage area 112 of thedatabase 108, within the memory 208, or within another data storage areawithout departure from the scope of the present subject matter.

At block 712, the process 700 highlights the focused data element. Atblock 714, the process 700 applies the defined distance formula to thefocused data element paired with each other data element within the setto calculate a differential data value for each element of the set ofdata elements relative to the focused data element. At block 716, theprocess 700 replaces displayed data values associated with the set ofdata elements with calculated differential data resulting fromapplication of the distance formula for the focused data element pairedwith each other data element within the set.

At decision point 718, the process 700 waits for an unfocused eventassociated with the focused data element. When a determination is madethat an unfocused event has been received, the process 700 makes adetermination at decision point 720 as to whether the user has releasedthe selected and held left mouse button. When a determination is madethat the user has not released a mouse button, the process 700 makes adetermination at decision point 722 as to whether a new (e.g., second orsubsequent) focus event has been detected. When a determination is madethat a new focus event has not been received, the process 700 iteratesbetween decision point 720 and decision point 722 to determine whetherthe left mouse button has been released or a new focus event has beenreceived, respectively.

When a determination is made at decision point 722 that a new focusevent has been detected, the process 700 continues processing asdescribed above beginning with block 712. As described above, thedefined distance formula is applied based upon the new focused dataelement against all data elements in the set to calculate a new (e.g.,second or subsequent) differential data value for each element of theset of data elements relative to the focused data element. Thisprocessing may continue until the user releases the left mouse button.

When a determination is made at decision point 720 that the user hasreleased the left mouse button, the process 700 retrieves the originaldata values for all data elements from a memory, such as the datastorage area 112 within the database 108, the memory 208, or anotherdata storage area, at block 724. At block 726, the process 700 replacesthe displayed differential data with the original data and the process700 returns to decision point 702 to await a new automated dynamicdifferential data processing request.

FIG. 8 is a flow chart of an example of an implementation of a process800 that may be used to allow a user to define a distance formula via adevice, such as the consumer electronics device 102, and associate thatdistance formula with a data type. The process 800 waits at decisionpoint 802 for a user to initiate a request to define a distance formulavia a device, such as the input device 204. When a determination is madethat a request to define a distance formula has been received, theprocess 800 prompts the user for a data type at block 804. The process800 waits at decision point 806 for the data type input to be received.

When a determination is made that the data type input has been received,the process 800 prompts the user for a distance formula at block 808.The process 800 waits at decision point 810 for the distance formulainput to be received. When a determination is made that the distanceformula input has been received, the process 800 stores the receiveddistance formula in association with the data type at block 812. Asdescribed above, the distance formula may be stored within thedifferential formula storage area 110 of the database 108. Similarly,the associated data type and the association between the data type andthe defined distance formula may be stored in the data storage area 112of the database 108. Alternatively, the defined distance formula and theassociated data type may be stored within the memory 208 or other datastorage area without departure from the scope of the present subjectmatter. At block 814, the process 800 generates and displays a distanceformula indication for the user to indicate that the differential dataformula is defined in association with a set of data elements associatedwith the data type. For example, an icon, such as the icon 400 describedabove in association with FIG. 4, may be used to indicate to the userthat the distance formula has been defined for a given set of data. Theprocess 800 returns to decision point 802 to await a new request todefine a distance formula.

As described above in association with FIG. 1 through FIG. 8, theexample systems and processes provide automated dynamic differentialdata processing. Many other variations and additional activitiesassociated with differential data processing are possible and all areconsidered within the scope of the present subject matter.

Those skilled in the art will recognize, upon consideration of the aboveteachings, that certain of the above examples are based upon use of aprogrammed processor, such as CPU 200. However, the invention is notlimited to such exemplary embodiments, since other embodiments could beimplemented using hardware component equivalents such as special purposehardware and/or dedicated processors. Similarly, general purposecomputers, microprocessor based computers, micro-controllers, opticalcomputers, analog computers, dedicated processors, application specificcircuits and/or dedicated hard wired logic may be used to constructalternative equivalent embodiments.

As will be appreciated by one skilled in the art, the present inventionmay be embodied as a system, method or computer program product.Accordingly, the present invention may take the form of an entirelyhardware embodiment, an entirely software embodiment (includingfirmware, resident software, micro-code, etc.) or an embodimentcombining software and hardware aspects that may all generally bereferred to herein as a “circuit,” “module” or “system.” Furthermore,the present invention may take the form of a computer program productembodied in any tangible medium of expression having computer-usableprogram code embodied in the medium.

Any combination of one or more computer usable or computer readablestorage medium(s) may be utilized. The computer-usable orcomputer-readable storage medium may be, for example but not limited to,an electronic, magnetic, optical, electromagnetic, infrared, orsemiconductor system, apparatus, or device medium. More specificexamples (a non-exhaustive list) of the computer-readable storage mediumwould include the following: an electrical connection having one or morewires, a portable computer diskette, a hard disk, a random access memory(RAM), a read-only memory (ROM), an erasable programmable read-onlymemory (EPROM or Flash memory), an optical fiber, a portable compactdisc read-only memory (CD-ROM), an optical storage device, or a magneticstorage device. Note that the computer-usable or computer-readablestorage medium could even be paper or another suitable medium upon whichthe program is printed, as the program can be electronically captured,via, for instance, optical scanning of the paper or other medium, thencompiled, interpreted, or otherwise processed in a suitable manner, ifnecessary, and then stored in a computer memory. In the context of thisdocument, a computer-usable or computer-readable storage medium may beany medium that can contain, store, communicate, or transport theprogram for use by or in connection with the instruction executionsystem, apparatus, or device.

Computer program code for carrying out operations of the presentinvention may be written in any combination of one or more programminglanguages, including an object oriented programming language such asJava, Smalltalk, C++ or the like and conventional procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The program code may execute entirely on the user's computer,partly on the user's computer, as a stand-alone software package, partlyon the user's computer and partly on a remote computer or entirely onthe remote computer or server. In the latter scenario, the remotecomputer may be connected to the user's computer through any type ofnetwork, including a local area network (LAN) or a wide area network(WAN), or the connection may be made to an external computer (forexample, through the Internet using an Internet Service Provider).

The present invention has been described with reference to flowchartillustrations and/or block diagrams of methods, apparatus (systems) andcomputer program products according to example embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable storage medium that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablestorage medium produce an article of manufacture including instructionmeans which implement the function/act specified in the flowchart and/orblock diagram block or blocks.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide processes for implementing the functions/actsspecified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible exampleimplementations of systems, methods and computer program productsaccording to various embodiments of the present invention. In thisregard, each block in the flowchart or block diagrams may represent amodule, segment, or portion of code, which comprises one or moreexecutable instructions for implementing the specified logicalfunction(s). It should also be noted that, in some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts, or combinations of special purpose hardware andcomputer instructions.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution.

Input/output or I/O devices (including but not limited to keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers.

Network adapters may also be coupled to the system to enable the dataprocessing system to become coupled to other data processing systems orremote printers or storage devices through intervening private or publicnetworks. Modems, cable modems and Ethernet cards are just a few of thecurrently available types of network adapters.

Those skilled in the art will recognize improvements and modificationsto the preferred embodiments of the present invention. All suchimprovements and modifications are considered within the scope of theconcepts disclosed herein and the claims that follow.

1. A method, comprising: receiving, via a user input device, a requestfor differential data relative to a first data element within aplurality of data elements; calculating a first differential data valuefor each of the plurality of data elements relative to the first dataelement; and displaying the first differential data value for each ofthe plurality of data elements relative to the first data element on adisplay in response to the received request.
 2. The method of claim 1,further comprising highlighting the first data element on the displayand where receiving, via the user input device, the request fordifferential data relative to the first data element within theplurality of data elements further comprises detecting a differentialdata selection associated with the received request for differentialdata via a graphical user interface (GUI) displayed on the display and afirst focus event associated with the first data element via the GUI inresponse to user manipulation of the user input device.
 3. The method ofclaim 2, further comprising: detecting a second focus event associatedwith a second data element of the plurality of data elements via theGUI; calculating a second differential data value for each of theplurality of data elements relative to the second data element; anddisplaying the second differential data value for each of the pluralityof data elements relative to the second data element on the display inresponse to the detected second focus event.
 4. The method of claim 1,where calculating the first differential data value for each of theplurality of data elements relative to the first data element furthercomprises: determining a data type associated with the first dataelement; and applying a distance formula associated with the determineddata type to the first data element paired with each of the plurality ofdata elements.
 5. The method of claim 4, where applying the distanceformula associated with the determined data type to the first dataelement paired with itself yields a differential data value of zero. 6.The method of claim 1, where displaying the first differential datavalue for each of the plurality of data elements relative to the firstdata element on the display in response to the received request furthercomprises: storing an original data value associated with each of theplurality of data elements in a memory; and displaying the firstdifferential data value associated with each of the plurality of dataelements on the display.
 7. The method of claim 6, further comprising:retrieving the original data value associated with each of the pluralityof data elements from the memory in response to at least one of adifferential display timeout and an unfocus event associated with thefirst data element; and displaying the original data value associatedwith each of the plurality of data elements on the display.
 8. Themethod of claim 1, further comprising: receiving a differential dataformula from a user via the user input device; associating thedifferential formula with the plurality of data elements; and displayingan indicator on the display in association with the plurality of dataelements indicating that the differential data formula is defined inassociation with the plurality of data elements.
 9. A system,comprising: a display; a user input device; and a processor programmedto: receive, via the user input device, a request for differential datarelative to a first data element within a plurality of data elements;calculate a first differential data value for each of the plurality ofdata elements relative to the first data element; and display the firstdifferential data value for each of the plurality of data elementsrelative to the first data element on the display in response to thereceived request.
 10. The system of claim 9, where the processor isfurther programmed to highlight the first data element on the displayand, where in being programmed to receive, via the user input device,the request for differential data relative to the first data elementwithin the plurality of data elements, the processor is furtherprogrammed to detect a differential data selection associated with thereceived request for differential data via a graphical user interface(GUI) displayed on the display and a first focus event associated withthe first data element via the GUI in response to user manipulation ofthe user input device.
 11. The system of claim 10, where the processoris further programmed to: detect a second focus event associated with asecond data element of the plurality of data elements via the GUI;calculate a second differential data value for each of the plurality ofdata elements relative to the second data element; and display thesecond differential data value for each of the plurality of dataelements relative to the second data element on the display in responseto the detected second focus event.
 12. The system of claim 9, where inbeing programmed to calculate the first differential data value for eachof the plurality of data elements relative to the first data element,the processor is further programmed to: determine a data type associatedwith the first data element; and apply a distance formula associatedwith the determined data type to the first data element paired with eachof the plurality of data elements.
 13. The system of claim 12, where inbeing programmed to apply the distance formula associated with thedetermined data type to the first data element paired with itself, theprocessor is further programmed to yield a differential data value ofzero.
 14. The system of claim 9, further comprising: a memory; and wherein being programmed to display the first differential data value foreach of the plurality of data elements relative to the first dataelement on the display in response to the received request, theprocessor is further programmed to: store an original data valueassociated with each of the plurality of data elements in the memory;and display the first differential data value associated with each ofthe plurality of data elements on the display.
 15. The system of claim14, where the processor is further programmed to: retrieve the originaldata value associated with each of the plurality of data elements fromthe memory in response to at least one of a differential display timeoutand an unfocus event associated with the first data element; and displaythe original data value associated with each of the plurality of dataelements on the display.
 16. The system of claim 9, where the processoris further programmed to: receive a differential data formula from auser via the user input device; associate the differential formula withthe plurality of data elements; and display an indicator on the displayin association with the plurality of data elements indicating that thedifferential data formula is defined in association with the pluralityof data elements.
 17. A system, comprising: a display; a user inputdevice; a memory; and a processor programmed to: detect a differentialdata selection associated with a received request for differential datavia a graphical user interface (GUI) displayed on the display and afirst focus event associated with a first data element via the GUI inresponse to user manipulation of the user input device; highlight thefirst data element on the display; determine a data type associated withthe first data element; apply a distance formula associated with thedetermined data type to the first data element paired with each of aplurality of data elements to calculate a first differential data valuefor each of the plurality of data elements relative to the first dataelement; store an original data value associated with each of theplurality of data elements in the memory; display the first differentialdata value for each of the plurality of data elements relative to thefirst data element on the display in response to the received request;detect a second focus event associated with a second data element of theplurality of data elements via the GUI; calculate a second differentialdata value for each of the plurality of data elements relative to thesecond data element; display the second differential data value for eachof the plurality of data elements relative to the second data element onthe display in response to the detected second focus event; retrieve theoriginal data value associated with each of the plurality of dataelements from the memory in response to at least one of a differentialdisplay timeout and an unfocus event associated with the first dataelement; and display the original data value associated with each of theplurality of data elements on the display.
 18. A computer programproduct comprising a computer useable storage medium including acomputer readable program, wherein the computer readable program whenexecuted on a computer causes the computer to: receive, via a user inputdevice, a request for differential data relative to a first data elementwithin a plurality of data elements; calculate a first differential datavalue for each of the plurality of data elements relative to the firstdata element; and display the first differential data value for each ofthe plurality of data elements relative to the first data element on adisplay in response to the received request.
 19. The computer programproduct of claim 18, wherein the computer readable program when executedon a computer further causes the computer to highlight the first dataelement on the display and, where in causing the computer to receive,via the user input device, the request for differential data relative tothe first data element within the plurality of data elements, thecomputer readable program when executed on a computer further causes thecomputer to detect a differential data selection associated with thereceived request for differential data via a graphical user interface(GUI) displayed on the display and a first focus event associated withthe first data element via the GUI in response to user manipulation ofthe user input device.
 20. The computer program product of claim 19,wherein the computer readable program when executed on a computerfurther causes the computer to: detect a second focus event associatedwith a second data element of the plurality of data elements via theGUI; calculate a second differential data value for each of theplurality of data elements relative to the second data element; anddisplay the second differential data value for each of the plurality ofdata elements relative to the second data element on the display inresponse to the detected second focus event.
 21. The computer programproduct of claim 18, where in causing the computer to calculate thefirst differential data value for each of the plurality of data elementsrelative to the first data element, the computer readable program whenexecuted on a computer further causes the computer to: determine a datatype associated with the first data element; and apply a distanceformula associated with the determined data type to the first dataelement paired with each of the plurality of data elements.
 22. Thecomputer program product of claim 21, where in causing the computer toapply the distance formula associated with the determined data type tothe first data element paired with itself, the computer readable programwhen executed on a computer further causes the computer to yield adifferential data value of zero.
 23. The computer program product ofclaim 18, where in causing the computer to display the firstdifferential data value for each of the plurality of data elementsrelative to the first data element on the display in response to thereceived request, the computer readable program when executed on acomputer further causes the computer to: store an original data valueassociated with each of the plurality of data elements in a memory; anddisplay the first differential data value associated with each of theplurality of data elements on the display.
 24. The computer programproduct of claim 23, wherein the computer readable program when executedon a computer further causes the computer to: retrieve the original datavalue associated with each of the plurality of data elements from thememory in response to at least one of a differential display timeout andan unfocus event associated with the first data element; and display theoriginal data value associated with each of the plurality of dataelements on the display.
 25. The computer program product of claim 18,wherein the computer readable program when executed on a computerfurther causes the computer to: receive a differential data formula froma user via the user input device; associate the differential formulawith the plurality of data elements; and display an indicator on thedisplay in association with the plurality of data elements indicatingthat the differential data formula is defined in association with theplurality of data elements.